home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / database / magrak18.zip / MAGRAK.DBT (.txt) < prev    next >
dBase/FoxBase/XBase/FoxPro Database File  |  1993-03-06  |  15KB  |  171 lines

  1.   Getting the most out of your graphics adapter with 
  2.   video memory remapping.
  3.     Graphics resolution and color are attractive features 
  4.   of the VGA, but some of their other useful features 
  5.   are often overlooked.  The ability to pan the screen 
  6.   image both horizontally and vertically can greatly expand 
  7.   EGA/VGA's usefulness.  This article explains how to remap
  8.   the video memory to allow this kind of pixel panning.
  9.      
  10.   Powerful hardware tools for complicated problem solving
  11.   The software-only debuggers that come with assemblers and 
  12.   compilers are usually designed for solving problems at the
  13.   applications level.  Although some of these products can 
  14.   also help debug terminate-and-stay-resident (TSR) 
  15.   programs, it is difficult or impossible to use them when 
  16.   debugging problems involving device drivers, hardware 
  17.   interrupt service routines, real-time interactions 
  18.   between two or more programs, or a hung system.  
  19.   Hardware-assisted debuggers use a combination of 
  20.   hardware and software to enable you to solve these more 
  21.   complex kinds of problems.  Levels of hardware assistance 
  22.   in these debuggers include a break-out switch, protected 
  23.   or hidden memory, real-time breakpoints, and a real-time 
  24.   trace buffer.
  25.      
  26.   Writing Portable code to access SCSI devices using the
  27.   Common Access Method.
  28.     The ANSI-standard, high-speed I/O bus known as the 
  29.   SCSI (Small Computer System Interface) is supported by
  30.   an unprecedented variety of computers and peripherals.
  31.   If you own a Mac, a Sun, a NeXT, or an Amiga with a hard
  32.   disk, you're probably already using SCSI, whether you 
  33.   know it or not.  The smae is true if you have a PC clone
  34.   with a Bernoulli box, a CD-ROM, a magnetopoptical disk,
  35.   or a WORM drive.
  36.      
  37.    When you need more speed and greater capacity.
  38.       As one of the programmers at a developer of CAD 
  39.    software for printed circuit-board design, I was 
  40.    assigned the job of porting our CAD programs from 
  41.    Microsoft C 4.0 to an 80386 protected-mode compiler.  
  42.    After making a quick study of the three Microway, High-C 
  43.    386 from MetaWare, and Watcom 7.0/386 from Watcom-- we 
  44.    chose the Watcom compiler.  This article describes the 
  45.    problems and solutions we encountered in the process of 
  46.    porting 75,000 lines of C.
  47.   Detect memory allocation errors automatically.
  48.     Originally the program was small, less than 20,000 
  49.   lines, and command-line driven.  But after two years, 
  50.   four different programmers, and the addition of a lot of 
  51.   functionality -- a nifty graphical user interface, 
  52.   multiple printer support, foreign language menus, and
  53.   a kitchen   sink -- the program grew to 150,000 lines. 
  54.   Then it started CRASHING.
  55.   The unique features of this special-purpose language can
  56.   greatly improve development time.
  57.     The AWK language is one of the gifts that the Unix 
  58.   environment has given to us.  Named for the intials of its
  59.   developers (Alfred Aho, Peter Weinberger, and Brian 
  60.   Kernighan), AWK was originally designed to be a simple 
  61.   utility for "quick and dirty" programming tasks.  Since
  62.   then it gradually evolved into a powerful tool capable 
  63.   of performing many time-saving tasks for programmers.
  64.       
  65.   Drawing objects that contain curves.
  66.     Lisp is an excellent language for developing 
  67.   high-level AI programs.  In particular Allergro Common 
  68.   Lisp (Allegro CL) has made the McIntosh an excellent
  69.   platform for developing AI software.  All implementations
  70.   of Common Lisp including Allegro CL, are limited by some 
  71.   serious drawbacks.  Commnuications to graphics and audio 
  72.   devices are not specified and Common Lisp does not even 
  73.   define access to physical devices.  (A trap mechanism in 
  74.   Allegro CL does permit communication to the MacIntosh 
  75.   Toolbox, but this mechanism is very limited.) Additionally, 
  76.   complex mathematical computations, such as geometric
  77.   transforms or statistical analysis, are extremely slow 
  78.   in any implementation of Lisp.
  79.   Taking advantage of variable argument lists in C.
  80.     While writing my first serious financial program in C 
  81.     (I'd previously used the language only for utilities), 
  82.     I was distressed by the lack of suitable output 
  83.     formatting -- specifically, comma-separated numbers 
  84.     with trailing signs.  After working with Cobol 
  85.     financial applications several years, I expected such 
  86.     niceties from any language.
  87.   When your text-based application can no longer deal with 
  88.   the memory-hungry real world, it's time to go virtual.  
  89.   Stephen shows you how to select and develop an 
  90.   application-supported virtual memory system that can take 
  91.   advantage of EMS paging and disk storage.
  92.   John examines string hashing functions for fast table 
  93.   lookup and explains why a hash table, unlike your car's 
  94.   gas tank, should never be full.  He also creates 
  95.   equivalent functions in assembly language for Windows 3.0 
  96.   routines that manage handle-based dynamic storage and 
  97.   atoms (hashed strings).
  98.   Installment21: In which we carry on with VGA color.
  99.   When last we left our hero, he/she (take your pick) had 
  100.   learned how to set the VGA's Digital to Analog Converter 
  101.   (DAC) to select 16 or 256 colors from a set of 256k
  102.   colors.  However, there was still a great deal to learn 
  103.   about color paging, loading and reading the DAC, and 
  104.   color cycling, so that's the direction we're headed 
  105.   next.  Before we begin, though, let me clear up a 
  106.   potential problem with C code from earlier installments.
  107.   In the old days, a reasonable C preprocessor read an 
  108.   input file, discarded comments and excess white space 
  109.   (spaces, tabs, and new lines), built tokens (character 
  110.   sequences), substituted definitions, and expanded macro 
  111.   definitions.  It didn't care when expansions and 
  112.   substitutions were done.  Probably the most challenging 
  113.   aspect of the preprocessor was handling macro expansions 
  114.   and argument substitutions in a constrained memory space.
  115.    The PC presented two problems: segmented memory 
  116.    architecture due to the Intel microprocessor's 64k-byte 
  117.    maximum segment size and DOS's 640K maximum memory size.
  118.   My own perspective is that one learns more from 'details' 
  119.   that from generalities.  Lots of articles and books cover 
  120.   material at the general level, so this article will focus 
  121.   on the details--how b-tree indexing is implemented in 
  122.   several dbase-compatible products.  My interest is not 
  123.   solely acedemic, but stems also from several years of 
  124.   real-world database programming conducted for the the 
  125.   State of Oregon.
  126.   A few years ago language vendors predicted their 
  127.   compilers would soon generate code  that would be nearly 
  128.   as efficient as assembly language code.  They were wrong.
  129.    C is a great programming language.  It's complicated 
  130.    enough to scare away beginners, fun to program, and 
  131.    efficient.  Of course, assembly language is more is more 
  132.    complicated, more fun, and more efficient.  With due 
  133.    respect to Watcom, Micrsoft C is about as good a 80x86 C 
  134.    compilers get.  Bill Gates spends more dough on his C 
  135.    compiler than anyone else, yet it doesn't touch assembly 
  136.    language.
  137.   One of the more appealing features of the VGA is the 
  138.   ability to display 256 simultaneous colors.  
  139.   Unfortunately, one of the less appealing features of the 
  140.   VGA is the limited resolution (320 X 200) of the 
  141.   256-color mode the BIOS supports.  More color can often 
  142.   compensate for less resolution, but the resolution 
  143.   difference between the 640 x 480 16 color mode and the 
  144.   320 x 200 256 color mode is so great that many programmers
  145.   must regretfully decide that they simply can't afford to 
  146.   use the 256-color mode.
  147.   Writing a terminal emulator in Windows offers many 
  148.   chalenges not normally encountered in the character-based 
  149.   DOS world.  But if you can overcome the sometimes 
  150.   surprising difficulties, you can reap many benefits: a 
  151.   rich user interface of dialog boxes and menus, 
  152.   multitasking and data exchange with other applications, 
  153.   the ability to implement special-purpose fonts, and a 
  154.   communications device driver with a complete set of 
  155.   function calls.
  156.   Now matter what the language, we all strive to create 
  157.   programs that execute in the least amount of time while 
  158.   using the fewest number of bytes.  Unfortunately, many 
  159.   programmers who use a high-level language have no way to 
  160.   determine which statements are the most efficient.
  161.     The purpose of this article is twofold.  We will 
  162.   discuss various BASIC statements to see which ones are 
  163.   faster and smaller.  Then we will examine the actual 
  164.   machine instructions generated by QuickBasic 4 and compare
  165.   them with the original BASIC source code.
  166.   The ability to overlay large applications is taken for 
  167.   granted by most modern software developers.  Thus, the 
  168.   usrs of Borland International's Turbo Pascal were quite 
  169.   shocked to discover that a built-in overlay capability 
  170.   present in Release 3 was missing from Relaease 4.
  171.